23

» WarCraft 3 / Перезарядка предмета

Похожие вопросы:

ответ
В предмете ID кулдауна разный ставьте.
ответ
Характеристики - название.
Поставь так такую же способность, как и вшита в предмет. Тогда кд будет показываеться от выбранной способности.
ответ
Steal nerves:
Способности нужно дать юниту, и все. Если эффект временный, используем вэйт/wait (по-русски ждать) или таймеры, по истечении которого удаляем способность. Но вэйты не рекомендуются для использования.
xgm.guru/p/wc3/articles новичок, иди почитай
xgm.guru/p/wc3/needspells здесь не стол для заказов, хотя тема заброшена
xgm.guru/p/wc3/bpe где-то тут была похожее, только с баффами
можете конкретно написать, что вам нужно.
смотреть сюда
событие - юнит применяет способность
условие -применяемая способность == тип твоей способности
действие - добавить способность
ждать 15 сек.
действие - удалить способность
про локалки + таймер, хэш-таблицы
xgm.guru/p/wc3/jass_local_vars есть примерчик внизу, похожий на ваш
ответ
TeX13, можно, сделано в доте для варкравта...
Способов реализации много, от 'ANeg' (способность механика, Enginering Upgrade, рус-Техника), которым можно свапать скиллы, до таймеров которые будут удалять способность у героя а потом вручать ему снова, таким образом скидывая кулдаун, ну и так же хак на пямять, с помощью которого можно менять кулдаун как захочется, щяс все кому не лень юзают эту наработку.
ответ
Вроде активка должна стоять первой в списке способностей предмета.

23

» WarCraft 3 / Как циклом удалять точки

Похожие вопросы:

ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
Steal nerves:
Проблема в том, что, если в этой точке построено здание, то IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY) не помогает (это терраин проверяет, а вот то что там построено или нет ему пофиг). Посмотрел в триггерах, есть только текстуры земли - уберспласты (там эти текстурки для здания) - нет функции такой в библиотеке jngp для проверки точки. Пробовал через группу, но там своя заминка (походу выборка ловит тех юнитов, точки которых попали в выборку, а не на целиком. Точно не проверял, но не работает с группой),
Clamp, решил через проверку
if (IssueBuildOrderById(YT, 'hhou', x, y) == false) then если не может построить, значит там здание или что-нибудь еще.
Clamp, помог еще твоя ссылка ExecuteFunc. видимо у меня лимит был, не хотело работать (просто дебаг не отобрал. и раб стоял). Хотя это уже не нужно было
А да слегка подвисает на секунду =(
Урра короче без лагов сделал (версия 3), подредактировать недоработку и будет норм

23

» WarCraft 3 / Как удалить переменную типа юнит?

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Всё, разобрался, вопрос снимаю)

23

» WarCraft 3 / Как бы это сделать?

Похожие вопросы:

ответ
  1. Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
  2. Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Скрин...
ответ
nvc123:
GRESHNIK1, я хз как ты пробовал
у меня всё работает нормально
плавающий юнит не может быть создан на суше
у тебя же корабль скорее всего не является плавающим т.е. не является кораблём
Делал из корабля из компании. Просьба залить пример, чтобы понять что я делаю не так.
ответ
WindMaster, проверяй, что количество жизней < 1, если 0 не работает. Можно было и самостоятельно догадаться, не бог весть какая наука.

Хотя периодическая проверка - априори костыль для такой задачи.
ответ
quq_CCCP, Уже решил, нужно создать любой ии в редакторе ии, и запустить его со стартом карты. Тогда юниты применяют абилки.
ответ
Закрыто.

23

» WarCraft 3 / Редактирование карты

Похожие вопросы:

ответ
Roy Mustang:
ну у тебя там почти 1000 юнитов. конечно будет лагать, незнаю попробуй откл список кистей.
Окно - > Список кистей
ответ
Trickster, Это защита, чтобы её снять нужны познания в устройстве формата карт.
А так подобная защита очень примитивна, открыть такую карту и восстановить все в ручную не сложно, но долговато...
ответ
~8gabriel8:
  1. Поставь после действия с созданием монстра Set Variable = (Last created unit), чтобы назначить ему переменную.

23

» WarCraft 3 / Туман войны

Похожие вопросы:

ответ
Пробовать не хочу, но предложу вот, что:
Если цель - защитить карту от подглядывания. То при старте игры или инициализации (если получится) можно запустить триггер с условием Вид: карта разведана is Set == да (процитировал текст условия из Гуи), действие - замкнутый цикл, или вызвать фатальную ошибку, вылет и т.д. Суть в том, что когда игрок запустит карту с такими параметрами, то тупо закрашить варик.
ответ
Eamon Flann:
Оказывается, отрицательную высоту для летающих зданий можно устанавливать, если поставить Art - Elevation - Sample Ponts: 0
SсRealm:
А еще можно повернуть нездание а том сделать зданием и поворот останется , правда в игре может сместитьтя внезапно))
А вместе с этим способом это, вроде бы как, решило мою проблему. Спасибо всем, кто попытался помочь :)
Melissa:
И ещё заметка - делать декорации юнитами - больная идея. Если их будет сотня другая - то ещё не конец света, но несколько сотен таких "декораций" - жди проседаний в производительности.
Да там и сотни не наберется, так что все нормально :)
ответ
Может, создать области по всей карте вокруг нужных областей и поставить видимость им?
ответ
спутал, эта фунция прячет хендл, а не рисовку обеспечивает
function IsFlagBitSet takes integer flags, integer bit returns boolean
	if bit!=0 then
		return flags/bit*0x80000000 != 0
	endif
	return false
endfunction

function RMem takes integer addr returns integer
	if addr<0 or addr>0x7FFFFFFF then
		return 0
	endif
	return Memory[addr/4]
endfunction

function AddAlwaysVisibleFlag takes unit u returns nothing
	local integer a=ConvertHandle(u)
	if a>0 and IsFlagBitSet(RMem(a+0x20),0x10)==false then
		call WMem(a+0x20,RMem(a+0x20)+0x10)
	endif
endfunction
вместо юнита можно вроде любой виджет, просто смени входящий тип и проверь
ответ
pro100master:
Georgy12, call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область)
call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область) вот так
либо
local fogmodifier loc = CreateFogModifierRect(whichPlayer, whichFogState, r, true, false)
call FogModifierStart(loc)
ты установил Player(3) значит это 4 игрок а ты в тест карту запускает 1 игрок пойми!!!
чтобы все игроки видел облость надо циклом от 0 до 11
Понял в чем был косяк, ни одна из функций модификации видимости не имела эффекта, потому что перед ней был следующий вызов модификации тумана с параментром true:
CreateFogModifierRect(Player(i), FOG_OF_WAR_FOGGED, gg_rct_EntireMap, true, false);

23

» WarCraft 3 / Модели на заказ

Похожие вопросы:

ответ
Прятать юнита, создавать дамми с нужными способностями. Если никто не сделает, возможно вечером попытаюсь (сейчас у меня утро) сделать.
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны

23

» WarCraft 3 / Модели на заказ

Похожие вопросы:

ответ
Прятать юнита, создавать дамми с нужными способностями. Если никто не сделает, возможно вечером попытаюсь (сейчас у меня утро) сделать.
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны

23

» WarCraft 3 / Что означает ошибка?

Похожие вопросы:

ответ
Скорее всего просто наткнулись на фатальный баг, едва ли тут память причём-то. В мои старые карты например можно тоже фатальчик словить и необязательно после 2 часов игры) Посмотри файл ошибки в папке варика, если там часто повторяется что-нить типа A008 или U026 то дело в способности/улучшении/юните и вычислить причину легко, но не всегда ты увидишь в логе все улики...
ответ
JNGP добавляет в РО скрытые модельки/иконки, а FNWE заменяет файлы, где указаны имена этих файлов.
Перенеси этот файл в папку UI с заменой.
ответ
Вот оптимальные настройки, скорей всего в них ошибка.

23

» WarCraft 3 / Морф любого юнита

Похожие вопросы:

ответ
Impertus, не знаю точно как сработает с "Эликсиром ярости", но handleID при морфе Ворона не изменяется. Возможно, и с остальными морфами тоже. Обращайся к юниту через его ID. Как находить этот ID и что это такое можешь почитать ТУТ
ответ
Сохраняй и меняй через таймер с временем 0.00 сек.

23

» WarCraft 3 / Нестандартные способности

Похожие вопросы:

ответ
переустанови jngp тогда если не поможет то переустанавливай до тех пор пока не будет всё норм
ответ
почему так долго грузится карта
Потому что огромный Нестандартные объекты может тысяч или больше или Спелл герой до 100 уровень.
из них 60 загрузка просто висит на 1/5.
Если нетак? Проверь если есть файлы war3map.j папка Game\WarcraftIII, надо удалить файл. очень давно тоже 1 раз что за вылет или неправильно выполняет триггер.
Есть способы ускорить загрузку карты не экономя в редакторе объектов
Есть Widgetizer, там очень быстрая загрузка игра, но плохо работает спелл или текст.
ответ
Steal nerves:
Если на триггерах только, я знаю только на jass:
xgm.guru/p/wc3/179127 простое движение
внизу ссылки на темы, где обсуждают ошибки. Там решение даны, подправить надо самим
xgm.guru/forum/showthread.php?t=53841 отталкивание посложнее
xgm.guru/forum/showthread.php?t=45368 отталкивание
ответ
  1. Сделай стандартную ауру хила и при ее изучении добавляй и задавай нужный уровень ауры торнадо. У нее даже иконки нет, так что очень удобно.
  2. Я могу расписать, как, но сложно, так что пусть другие ответят, мб есть вариант проще.
  3. Если без мемхака: сделай абилу на основе предметной на повышение брони с 31 уровнем, на первом 0 повышения, на последнем +30. Что дальше делать, сам догадайся...

23

» WarCraft 3 / Общие войска: все.

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
В игровых константах поищи пункты про передачу ресурсов.
ответ
...кстати о которой, кто-нибудь таки хочет мне помочь с разработкой? Или я уж тему прикрою?
ответ
kjstilin, Изи же , вот лови
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек

23

» WarCraft 3 / Едкое дыхание

Похожие вопросы:

ответ
Вроде крашей быть не должно но само понятие улучшение на 9999 уровней немного настораживает так как каждое такое будет нагружать карту.

23

» WarCraft 3 / Необычное в редакторе.

Похожие вопросы:

ответ
DarkRaven Best, в картах есть 2 файла с кодом
j и wct
wct содержит тот код который отображается в редакторе
j файл содержит окончательный код который и работает в игре(с переменными, генерируемыми функциями и результатом гуи)
проги для взлома карт тупо перемещает код из j файла в wct (в том числе и генерируемые функции наподобие main)
при попытке сохранения карты код из wct перемещается в j и генерируются системные функции (например main)
но т.к. генерируемые функции уже перенеслись в j из wct получается повторение функций( например main из wct + сгенерированный main)
если же удалить/переименовать лишние функции в редакторе то функции будут сгенерированны не правильно (например в main будет отсутствовать инициализация библиотек)
для того чтобы всё нормально работало надо открыть карту в mpq редакторе и ручками править wct файл вычищая из него всё лишнее
для этого надо хорошо знать джасс

23

» WarCraft 3 / абилки

Похожие вопросы:

ответ
способность "книга заклинаний"
ответ
просто втупую смени ид и должно сработать, если условия у абилки такие же, как в начале (ну требуемый уровень, макс уровень и тп)
ответ
Попробуй через проверку уровня
Игрок одел кирку - дать\повысить уровень рудокопа до уровня 2
Игрок снял кирку - понизить лвл рудокопа до 1
Если он пытается копать, имея уровень абилки 1, то ломает руки :D
Если же абилка лвла 2, и он начинает копать, то копание проходит удачно
ответ
один триггер. потому что не надо будет 100 раз спрашивать, что за абилка
ответ
Proshel_Doty, иди учи тер вер
если тебя не устраивает то как работает здравый смысл то убей себя
если тебе повезёт то ты переродишься в мире который тебя устраивает
если хочешь чтобы срабатывала каждые 5 раз то это не случайность а тупо счётчик

23

» WarCraft 3 / Гром и Молния

Похожие вопросы:

ответ
Последний созданный юнит — это глобальная переменная. Скорее всего когда Вы обращаетесь к ней, то там находится не то значение, которое вы ожидаете. Используйте локальные переменные.
ответ
Вобщем просто поставил ему взрыв после смерти. так работает.
ответ
можно дамми-юнитами кастовать «громовую поступь» в случайные точки определённой области
ответ
Громовая поступь > Допустимые цели > добавь воздушные
Чтобы изменить эффект модели урона > графика > цель
ответ
keks_090, чтобы кастовал бот - нужно триггерно приказать ему это сделать. Например, если тот же топот, то действие: Боевая единица - Приказ без цели (Issue Order With No Target), и выбираешь приказ: Вождь минотавров (Орда) - Громовая поступь. Аналогично с другими типами целей и спеллов. Нужно только выбрать приказ способности, на основе которой была создана триггерная способность.

23

» WarCraft 3 / Время в игре

Похожие вопросы:

ответ
Способности на основе предметов некоректно отображаются
ответ
юзай прелоад
подробнее в статьях
ответ
Рассчитать границы надо скорее всего.
ответ
Для этих действий нужно стереть сообщение и вывести новое, с изменениями.
Команда для очистки сообщений:
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было

23

» WarCraft 3 / триггер на атаку

Похожие вопросы:

ответ
на сколько я понял твой триггер срабатывает при получении урона определённым юнитом
и ты вызываешь в нём этот триггер
который наносит урон этому самому юниту
в результате опять срабатывает отлов урона
и опять наносится урон
и опять ...
в общем получается рекурсия и вар выкидывает из за переполнения стека
кстати почему бы не сделать отлов урона в 1 триггере?
ответ
шанс идёт через проверку "случайное число от 0 до 100 меньше чем x" где x - твой шанс
если под "оказаться позади противника" ты имеешь ввиду мгновенное перемещение то просто берёшь полярные координаты от (местоположение противника) с углом (угол поворота противника + 180) и расстоянием 100
если нужно плавное перемещение то тоже самое только юзаем системы движения которые описаны в статьях
так же могут понадобится знания геометрии которые изложены в статьях
ответ
Да сделай проще. Создай многоуровневую способность-пустышку. и когда отдаешь приказ атаковать в область, давай ему эту способность и с помощью неё отслеживай, какую область атаковать.
Например,
способность уровень 1, значит атаковать должен 1 область.
Уровень 2 - 2 область и т. д.
Не вижу смысла усложнять жизнь с хеш-таблицей.
Надеюсь понятно?) Отдал приказ, присвоил способность, после каста жди пару сек и в зависимости от уровня способности-пустышки отправляй в ту или иную область.
ответ
юзай событие юнит получает урон навешанное на каждого юнита
а это ресурсозатратно
ерунду не неси
если хочешь сделать всё очень оптимально то узнай для начала как работает система событий
или вообще юзай екзекют
Diaboliko:
событие получения урона сразу для всех юнитов
это было и до мемхака
вообще бесит когда люди которые не шарят в работе вара начинают выдумывать проблемы а потом искать их решение

23

» WarCraft 3 / Свои типы данных

Похожие вопросы:

ответ
Можно сделать столько категорий:
  1. Стандартные - Альянс - Сражение - Войска
  2. Стандартные - Альянс - Сражение - Герои
  3. Стандартные - Альянс - Сражение - Особые Войска
  4. Стандартные - Альянс - Кампания - Войска
  5. Стандартные - Альянс - Кампания - Герои
  6. Стандартные - Альянс - Кампания - Особые Войска
7..12) Орда
13..18) Нежить
19..24) Ночные Эльфы
25..30) Наги
И еще 31-60) Для нестандартных
+ суффикс редактора = очень много.
Хотя например для своей карты я сделал так: имена юнитов / заклинаний начинаются на категорию а дальше идет имя самого юнита. Например:
Защитные - Воин
Защитные - Лучник
Нападающие - Воин
Нападающие - Лучник
А по изменению редактора...
Теоретически тебе надо взять исходники редактора (JNGP например) и написать плагин/модуль который:
  1. меняет структуру файла карты - новые папки добавляет (открываться будет только в твоем редакторе)
  2. добавляет на UI соответствующие кнопки / окошки ввода
Либо вариация предыдущего - поменять алгоритм сортировки в редакторе - чтобы сортировалось в первую очередь по суффиксу редактора, а потом уже по имени. Намного проще, если иметь исходник.
У них похожие здачи были (с дополнением JNGP):
погляди Grimoire
ответ
Ledon, друзья и здания
и попробуй почитать внимательно статью
ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
Diaboliko, xgm.guru/p/blog-nvc123/101422
это про то как вешать всякую фигню на общий таймер
хэш тут нафиг не нужен т.к. таймер 1
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]

23

» WarCraft 3 / Урон как лечение

Похожие вопросы:

ответ
  • Если урон > здоровья, тогда делаешь юнита неуязвимым, запускаешь таймер на 0 сек., по истечению делаешь юнита уязвимым и восстанавливаешь здоровье
  • Если после восстановления здоровье превышает максимальное значение, тогда восстанавливай здоровье не сразу, а, как и в п.1, с помощью таймера
ответ
идем читать статьи
и не п... врем что читали, потому что в противном случае имели бы представление про триггеры и что с ними делать
сверху есть кнопочка - нажимаем и читаем
если не понятен алгоритм - работаем с группой юнитов, союзников лечим, врагов - дамажим, делаем анимацию снаряда
а как превысить лимиты РО - shift + enter
и в поиске по вопросам это тоже есть
ответ
Нестандартная арена.

23

» WarCraft 3 / Триггеры: Как послать юнита на указанную точку

Похожие вопросы:

ответ
GF RaiseD:
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.

23

» WarCraft 3 / атака и скорость атаки

Похожие вопросы:

ответ
Ладно. Проехали.
Раз даже спецы не знают как это реализовано, то закрою тему.
Имхо в данных картах реализована какая-то jass система, на основе:
"Скорость перезарядки" - 0
А при атаке, jass'ом разрешается атаковать, с интервалом зависящим от ловкости.
Но это только моё мнение.
Если есть наработка. Пишите в личку.
ответ
В Состоянии скорости атаки в +5-100% более всего видна разница по сравнению с исходным интервалом атаки. Между состояниями +300% АС и +400% АС разницу заметить очень трудно.
Короче самыми значимыми будут бонусы, которые ты получаешь пока суммарный бонус АС близок к нулю.
Скорость атаки каждого юнита варьируется от -80% (в 4 раза больший интервал) до +400% (в 4 раза меньший интервал). То есть, если у тебя 0% АС и тебя замедляют на 40% - то на скорости атаки это очень сильно скажется. В то же время если у тебя +350% АС и тебя замедлили на 40%, то эффекта тупо не будет видно.
Но 0% будет едва ли, т.к. каждое очко ловкости даёт 2% скорости атаки.
ответ
LeVeZeN, это делается либо через орб (сфера молний) либо через дамикаст
а вообще это саша из доты а значит тебе прямая дорога в опендоту
ответ
Если тебе нужна формула, то глянь вот тут:
ответ
  1. Уже создали, основан на хаке на память, лучше юзайте поиск.
  2. Удаляйте бафф триггерно.

23

» WarCraft 3 / Оптимизация: Количество событий

Похожие вопросы:

ответ
Есть, триггер для триггерных скиллов 1, 3 ивента, кастанул, завершил каст, выучил - все, далее условие что абилка в базе данных и собственно действие екзикут функции взятой из базы данных.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.